# 16、
# 创建一个班级模块mym1
# 将以下的类放在班级模块中，
# 创建一个班级类，
# 属性：班级名称cls_name，班级人数cls_num，班级类型cls_type，班级成绩cls_cj
class Class:
    def __init__(self,cls_name,cls_num,cls_type,cls_cj):
        print("在初始化班级属性中·····")
        self.name=cls_name
        self.num =cls_num
        self.type=cls_type
        self.cj=cls_cj

    # 行为1：求班级的成绩中的最高分，并返回该值
    def news(self):
        print('班级最高分为')
        return max(self.cj)

# 行为3：查找班级中是否存在某个分数，并打印结果（用while实现）
    def find_cj(self,mark):
        i = 0
        while i <len(self.cls_cj):
            if self.cls_cj[i] == mark:
                print('已找到')
                break
            elif i > len(self.cls_cj)-1:
                print('找不到')
            i+=1

# 行为4：计算出100以内的偶数之和，仅可内部使用不可继承
    def sum_evey(self):
        sum=0
        for num in range(1,101,2):
            sum += num
        return sum
#
# 初始化函数参数（str1，cls_name，cls_num，cls_num，cls_cj），
# 初始方法要求：
# 打印出 str1，
    def __init__(self,str1,cls_name,cls_type,cls_num,cls_cj):
        print("在初始化函数中·····")
        print(str1)

        # 通过形参给各属性赋值，
        self.str1 = str1
        self.cls_name = cls_name
        self.cls_num = cls_num
        self.cls_type = cls_type
        self.cls_cj = cls_cj

    def maxcj(self):
        return max(self.cls_cj)
# 并调用行为4，并打印调用行为4后的结果
Class1 = Class
print(Class1)


# 17、
# 创建一个模块班级模块mym2，并在该模块中做以下事情：
class Classtwo:
    def __init__(self,cls_name,cls_num,cls_type,cls_cj):
        print("在初始化班级属性中·····")
        self.name=cls_name
        self.num =cls_num
        self.type=cls_type
        self.cls_cj=cls_cj

        # 行为1
    def news1(self):
        print('班级最高分为')
        return max(self.cls_cj)
    #行为3
    def find_cj(self, mark):
        i = 0
        while i < len(self.cls_cj):
            if self.cls_cj[i] == mark:
                print('已找到')
                break
            elif i > len(self.cls_cj) - 1:
                print('找不到')
            i += 1
if __name__ == "__main__":
# 创建班级1的实例，其中班级1的成绩： cj=[50,90,89,70,89,78]，其他值自定义即可）
    class1 = Classtwo(cls_name='1班',cls_num=50,cls_type='普通班',cls_cj=[50,90,89,70,89,78])

# 创建班级2的实例，其中班级2的成绩： cj=[40,90,100,70,69,77]，其他值自定义即可）
    class2 = Classtwo(cls_name='2班',cls_num=50,cls_type='普通班',cls_cj=[40,90,100,70,69,77])

# 班级1对象，班级2对象 分别调用行为1
    mark1 = class1.news1()
    mark2 = class2.news1()
# 班级1的最高分若大于班级2的最高分，把最高分做加法，并打印结果
# 不然，做减法，并打印结果
    if mark1 > mark2:
        print(mark1+mark2)
    else:
        print(mark1-mark2)

# 班级1，班级2 分别调用行为3，并判断是否存在100的成绩
    class1.find_cj(100)
    class2.find_cj(100)

# 要求：在自测代码（__name__=="__main__"）中实例化类及调用函数
# 19、创建一个doYunSuan模块，在该模块下创建DoYunSuan类，
# 在该类下分别定义加、减、乘、除 函数，且分别有参数及返回值。
class doYunSuan:
    def add(self, a, b):
        print(self.num)
        return a + b

    def minus(self, a, b):
        print(self.num)
        return (a - b)

    def mul(self, a, b):
        print(self.num)
        return (a * b)

    def div(self, a, b):
        print(self, a, b)
        if b != 0:
            return (a / b)
        else:
            return ('除数不能为0')

# 13、定义一个形参类型分别是必填项字符串1、，选填字符串2，不定长元组、不定长字典的函数，分别打印出该字符串、元组内容，字典的值
# 分别调用该函数：参数是仅必填项、  必填+选填、不定长元组、不定长字典
def xc(str1,str2=20,*args,**dict):
    print(str1,str2,*args,**dict)
#     if str2:
#         print(str2)
#     if args:
#         print(args)
#     if dict:
#         print(dict)
# print("--仅必填项--")
# xc('必填项字符串1')
# print("--必填+选填--")
# xc('选填字符串2')
# print("--不定长元组--")
# xc('不定长元组')
# print("--不定长字典--")
# xc('不定长字典的函数')
xc(100)
xc(120,str2=63)